from PublicReference.base import *

class 风暴骑兵技能0(主动技能):
    名称 = 'M3喷火器'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 47
    基础 = 2600.3
    成长 = 294.9
    CD = 7.0
    TP成长 = 0.08
    TP基础 = 5
    TP上限 = 7

class 风暴骑兵技能1(被动技能):
    名称 = '重火器精通'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round((1 + 0.02 * self.等级) * (1 + 0.01 * self.等级), 5)


    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.00 + 0.01 * self.等级, 5)

class 风暴骑兵技能2(主动技能):
    名称 = '加农炮'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 44
    基础 = 1883.0
    成长 = 212.8
    CD = 5.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 7

class 风暴骑兵技能3(主动技能):
    名称 = '反坦克炮'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 44
    基础 = 2049.6
    成长 = 231.4
    CD = 6.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 7

class 风暴骑兵技能4(被动技能):
    名称 = 'APG63'
    所在等级 = 25
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.14 + 0.01 * self.等级, 5)

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.14 + 0.01 * self.等级, 5)

    def 物理暴击加成(self):
        if self.等级 == 0:
            return 0.0
        else:
            return round(0.03 + 0.01  *self.等级, 5)

class 风暴骑兵技能5(主动技能):
    名称 = '激光炮'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 42
    基础 = 2283.5
    成长 = 257.9
    CD = 7.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 7

class 风暴骑兵技能6(被动技能):
    名称 = '蓄电激光炮'
    所在等级 = 25
    等级上限 = 11
    基础等级 = 1
    关联技能 = ['激光炮']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.25+0.05 * self.等级, 5)

class 风暴骑兵技能7(主动技能):
    名称 = '聚焦喷火器'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 39
    基础 = 5191.8
    成长 = 587.1
    CD = 12.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 7

class 风暴骑兵技能8(主动技能):
    名称 = 'FM31榴弹发射器'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 37
    基础 = 5882.5
    成长 = 665.4
    CD = 15.0
    TP成长 = 0.20
    TP基础 = 1
    TP上限 = 1
    是否有护石 = 1

    def 装备护石(self):
        self.基础释放次数 = 4
        self.基础 *= 0.25
        self.成长 *= 0.25
        self.倍率 *= 1.18
        self.CD *= float(4/15)

class 风暴骑兵技能9(主动技能):
    名称 = 'FM92mk2榴弹'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 37
    基础 = 8185.4
    成长 = 923.7
    CD = 20.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 7

class 风暴骑兵技能10(主动技能):
    名称 = '量子爆弹'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 34
    基础 = 7559.9
    成长 = 853.5
    CD = 18.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 7
    是否有护石 = 1

    def 装备护石(self):
        self.倍率 *= 1.26
        self.CD *= 0.9

class 风暴骑兵技能11(主动技能):
    名称 = 'X1压缩量子炮'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 32
    基础 = 15593.2
    成长 = 1760.7
    CD = 45.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 7
    是否有护石 = 1

    def 装备护石(self):
        self.倍率 *= 1.1
        self.CD *= 0.88

class 风暴骑兵技能12(被动技能):
    名称 = '超温重火器'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.04 + 0.02 * self.等级, 5)

class 风暴骑兵技能13(主动技能):
    名称 = '远古粒子炮'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 12
    基础 = 41195.0
    成长 = 12445.0
    CD = 159.5

class 风暴骑兵技能14(主动技能):
    名称 = '等离子放射器'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 24
    基础 = 13639.5
    成长 = 1542.2
    CD = 30.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 7
    是否有护石 = 1

    def 装备护石(self):
        self.倍率 *= 0.85
        self.CD *= 0.60

class 风暴骑兵技能15(主动技能):
    名称 = 'FM92mk2SW榴弹'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 19
    基础 = 26820.7
    成长 = 3029.6
    CD = 50.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 7
    是否有护石 = 1

    def 装备护石(self):
        self.倍率 *= 1.19
        self.CD *= 0.9

class 风暴骑兵技能16(被动技能):
    名称 = '重武装改造'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.23 + 0.02 * self.等级, 5)

class 风暴骑兵技能17(主动技能):
    名称 = 'FSC7'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 17
    基础 = 36310.2
    成长 = 4100.3
    CD = 40.0

class 风暴骑兵技能18(主动技能):
    名称 = 'PT15原始型压缩炮'
    备注 = '(向前)'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 14
    基础 = 45315.4
    成长 = 5116.3
    CD = 45.0

class 风暴骑兵技能19(主动技能):
    名称 = '火力全开'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    基础 = 95635.0
    成长 = 28909.4
    CD = 198.0

class 风暴骑兵技能20(被动技能):
    名称 = '卓越之力'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)

class 风暴骑兵技能21(被动技能):
    名称 = '超卓之心'
    所在等级 = 95
    等级上限 = 11
    基础等级 = 1

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.045 + 0.005 * self.等级, 5)

class 风暴骑兵技能22(被动技能):
    名称 = '觉醒之抉择'
    所在等级 = 100
    等级上限 = 40
    基础等级 = 2
    关联技能 = ['无']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.10 + 0.05 * self.等级, 5)

风暴骑兵技能列表 = []
i = 0
while i >= 0:
    try:
        exec('风暴骑兵技能列表.append(风暴骑兵技能'+str(i)+'())')
        i += 1
    except:
        i = -1

风暴骑兵技能序号 = dict()
for i in range(len(风暴骑兵技能列表)):
    风暴骑兵技能序号[风暴骑兵技能列表[i].名称] = i

风暴骑兵一觉序号 = 0
风暴骑兵二觉序号 = 0
风暴骑兵三觉序号 = 0
for i in 风暴骑兵技能列表:
    if i.所在等级 == 50:
        风暴骑兵一觉序号 = 风暴骑兵技能序号[i.名称]
    if i.所在等级 == 85:
        风暴骑兵二觉序号 = 风暴骑兵技能序号[i.名称]
    if i.所在等级 == 100:
        风暴骑兵三觉序号 = 风暴骑兵技能序号[i.名称]

风暴骑兵护石选项 = ['无']
for i in 风暴骑兵技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        风暴骑兵护石选项.append(i.名称)

风暴骑兵符文选项 = ['无']
for i in 风暴骑兵技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        风暴骑兵符文选项.append(i.名称)

class 风暴骑兵角色属性(角色属性):

    职业名称 = '风暴骑兵'

    武器选项 = ['手炮']
    
    #'物理百分比','魔法百分比','物理固伤','魔法固伤'
    伤害类型选择 = ['物理百分比']
    
    #默认
    伤害类型 = '物理百分比'
    防具类型 = '重甲'
    防具精通属性 = ['力量']

    主BUFF = 1.957
   
    #基础属性(含唤醒)
    基础力量 = 961.0
    基础智力 = 790.0
    
    #适用系统奶加成
    力量 = 基础力量
    智力 = 基础智力

    #人物基础 + 唤醒
    物理攻击力 = 65.0
    魔法攻击力 = 65.0
    独立攻击力 = 1045.0
    火属性强化 = 13
    冰属性强化 = 13
    光属性强化 = 13
    暗属性强化 = 13
  
    def __init__(self):
        self.技能栏= copy.deepcopy(风暴骑兵技能列表)
        self.技能序号= copy.deepcopy(风暴骑兵技能序号)

class 风暴骑兵(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 风暴骑兵角色属性()
        self.角色属性A = 风暴骑兵角色属性()
        self.角色属性B = 风暴骑兵角色属性()
        self.一觉序号 = 风暴骑兵一觉序号
        self.二觉序号 = 风暴骑兵二觉序号
        self.三觉序号 = 风暴骑兵三觉序号
        self.护石选项 = copy.deepcopy(风暴骑兵护石选项)
        self.符文选项 = copy.deepcopy(风暴骑兵符文选项)

